#pragma once

#include <gl/glew.h>
#include <string>
#include <iostream>
#include <sstream>
#include <limits>
#include <fstream>


#include "../Core/Trig.h"
#include "../Core/AriesMath.h"
#include "../Core/IDisposable.h"

#include "VertexLocations.h"

using namespace Core;

namespace Renderer
{
	namespace GL3x
	{
		class ShaderObjectGL3x : public IDisposable
		{
		public:
			ShaderObjectGL3x(GLenum shaderType, std::string source);

			~ShaderObjectGL3x();

			GLuint Handle();

			std::string CompileLog();

			void Destroy() override;

		private:
			GLuint _shaderObject;
		};
	}
}